Геометрические ядра (в России и мире)
Системы автоматизации черчения (Computer-Aided Drafting), созданные в 1960-х гг. для замены кульмана (традиционного чертежного инструмента, которым архитекторы и инженеры всего мира привыкли пользоваться со времен промышленной революции XVIII в.), в настоящее время превратились из средства автоматизации рутинной работы в ключевой инструмент инноваций в разных отраслях промышленности, став системами автоматизации проектирования (Computer-Aided Design).
Современная CAD система позволяет решить множество задач. И ключевую роль здесь играет трехмерная модель.[1]
Трехмерное моделирование и виртуальная реальность
Еще в 1970-х гг. ученые всего мира, работающие вместе с представителями военных ведомств и промышленных предприятий, начали исследовать различные способы представления трехмерных данных в компьютере, облегчающих последующую работу с ними. До недавних пор трехмерная модель существовала лишь в головах конструкторов, что порождало множество проблем и ошибок — как при проектировании изделия, так и при его производстве, эксплуатации и утилизации. Полученный за последние годы опыт передовых предприятий свидетельствует, что использование трехмерных цифровых моделей изделия на всех этапах его жизненного цикла позволяет сократить затраты на проектирование, ускорить вывод нового продукта на рынок, удешевить производство, оперативно вносить предлагаемые пользователями изменения в его конструкцию и сократить до необходимого минимума вред окружающей среде. В конечном счете, трехмерное моделирование значительно повышает конкурентоспособность предприятия и его способность оперативно реагировать на любые изменения в экономике.Как DevOps-сервис помогает «разгрузить» высоконагруженные системы BPMSoft
Трехмерное моделирование к настоящему моменту имеет за спиной более чем 30-летнюю историю. Далеко не все предложенные идеи оказались плодотворными. Далеко не все компании-разработчики средств трехмерного моделирования, смогли пережить рыночные пертурбации. Но лучший опыт оказался накоплен в программных компонентах, называемых ядрами трехмерного моделирования (3D modeling kernels), которые ныне лежат в основе почти любой CAD (а также CAE и CAM). Такие компоненты разработчики инженерного ПО либо проектируют, кодируют и поддерживают самостоятельно, либо лицензируют их у сторонних технологических поставщиков. 3D-ядро — это фундамент, на котором строится здание любой современной CAD. От этого фундамента зависит все остальное — возможности различных инструментов, их быстродействие, устойчивость к ошибкам, и даже общая интеллектуальность системы.
С точки зрения программиста геометрическое ядро — это библиотека функций/классов для создания геометрических объектов (точка, отрезок/дуга/кривая, кусок поверхности, твердое тело), изменения их форм и размеров, создания на их основе новых объектов, визуализации модели на экране компьютера и обмена трехмерными данными с другими программами. Перечисление функций ядра можно ужать в одно предложение, но их реализация растягивается на десятки и сотни человеко-лет. Дело в том, что за каждой элементарной операцией (типа пересечения двух поверхностей класса NURBS) стоит вычислительный алгоритм, реализация и отладка которого является весьма трудоемкой задачей, требующей как безукоризненного владения аппаратом вычислительной математики, так и профессионального знания предметной области. А подобных операций в ядре — сотни (с учетом разнообразия типов геометрических данных).
NURBS — основной класс поверхностей в трехмерном моделировании
Далеко не все разработчики CAD (а тем более CAE и CAM) готовы инвестировать в таком объеме в базовую технологию, поэтому большинство из них предпочитают лицензировать готовое 3D-ядро у сторонних производителей (иногда у своих прямых конкурентов), осуществляя компании-разработчику ядра регулярные платежи (обычно включающие определенную сумму с каждой проданной копии конечного продукта). Взамен они получают возможность использовать ядро, которое уже было «обкатано» в других системах, поэтому обладает богатой функциональностью и высоким уровнем надежности. Наконец, взяв готовое ядро, разработчик САПР сможет быстрее вывести свой программный продукт на рынок. Иногда этот фактор является определяющим — если опоздать с релизом продукта на год-другой, то рынок может оказаться занятым конкурентами. Ярчайшим примером является выпуск MCAD (Mechanical CAD) SolidWorks, ставшей первой в мире системой параметрического твердотельного моделирования для платформы Windows и до сих пор остающейся абсолютным лидером в отрасли MCAD (машиностроительного проектирования) по числу проданных лицензий. Этим же путем впоследствии пошли разработчики множества других успешных систем, включая российские компании ADEM и Топ Системы.
T-FLEX CAD (Топ Системы), созданный на основе ядра Parasolid
Однако, в мире САПР существует небольшое количество компаний, которые ставят во главу угла возможность полного контроля над исходным кодом, оперативного исправления ошибок и наращивания функционала, быстрого переноса на новые платформы и поэтому готовы расплачиваться за это собственными ресурсами. К этой группе принадлежат как четверка лидеров рынка САПР с миллиардными доходами (Dassault, Autodesk, Siemens и PTC), так и российский разработчик АСКОН.
КОМПАС-3D (АСКОН), созданный на основе собственного ядра
Достаточно полный список примеров разработчиков, как первой, так и второй категории приведен в таблице ниже. Из нее видно, что наиболее активно лицензируются ядра ACIS (развивается и поддерживается Spatial, дочерней компанией Dassault Systemes) и Parasolid (Siemens PLM Software).
С 2007 г. Правительство Российской Федерации осуществляет федеральную целевую программу «Национальная технологическая база» с целью создания новых передовых технологий и оборудования, внедрения разработанных технологий в производство, коммерциализации новых технологий, создания перспективного научно-технологического задела для разработки перспективной наукоемкой продукции, решения проблем улучшения экологической ситуации в стране. В рамках этой программы Министерство промышленности и торговли РФ объявило тендер на выполнение научно-исследовательской и опытно-конструкторской работы «Создание отечественного лицензируемого программно-математического ядра трехмерного моделирования как базы для компьютерных систем автоматизированного проектирования сложной машиностроительной продукции». Такое ядро, будучи положено в основу нового поколения компьютерных систем проектирования, инженерного анализа, подготовки производства, создания технической документации, будет способствовать созданию российской промышленностью инновационных изделий, конкурентоспособных на мировом рынке, став частью национальной технологической базы. Победителем тендера стало Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Московский государственный технологический университет «СТАНКИН», а одним из субподрядчиков — компания ЛЕДАС.
Российская компания ЛЕДАС обладает тринадцатилетним опытом разработки наукоемких программных компонент САПР по заказу лидеров мирового рынка инженерного ПО. Среди успешно выполненных компанией проектов — интервальный решатель для работы с инженерными знаниями; решатель геометрических и размерных ограничений для параметрического черчения, проектирования сборок, кинематической анимации и прямого моделирования; модули для работы с полигональными сетками в режиме реального времени (преобразование сетки в поверхность подразделения, развертка сетки на плоскость, вычисление минимальных расстояний и определение пересечений между сетками); модули трансляции инженерных данных. С учетом указанного опыта, компании ЛЕДАС в проекте «3D-ядро» поручен сектор работ, связанных с разработкой алгоритмов вычислительной и дискретной математики, и включающий известную своей сложностью задачу высокоточного построения пересечения произвольных поверхностей и кривых.
Безусловно, при разработке нового 3D-ядра необходимо опираться на опыт предшественников, чтобы взять лучшее из этого опыта и не повторить их ошибок. Поэтому в последующих публикациях мы планируем кратко осветить историю предыдущих попыток создания ядер трехмерного моделирования, а также рассказать о том, чем будет отличаться от них создаваемое сейчас российское ядро.
Автор: Дмитрий Ушаков, Isicad